<html>
<head>
<script>

var should_delete_testform = true;
var add_parameters_to_target_url = false;

function handleSubmitFormEvent(e) {
    e.preventDefault();
    if (should_delete_testform && e.currentTarget) {
      var form_element = e.currentTarget;
      form_element.parentNode.removeChild(form_element);
    }
    var target_url = "password_push_state.html";
    if (add_parameters_to_target_url)
      target_url += "?ref=1#a";
    history.pushState({}, "", target_url);
}

window.onload = function() {
  document.getElementById("testform")
          .addEventListener("submit", handleSubmitFormEvent);
  document.getElementById("chg_testform")
          .addEventListener("submit", handleSubmitFormEvent);
  document.getElementById("empty_action_login_form")
          .addEventListener("submit", handleSubmitFormEvent);
  document.getElementById("params_action_login_form")
          .addEventListener("submit", handleSubmitFormEvent);
}

</script>
</head>
<body>
<form action="password_push_state1.html" id="testform">
  <input type="text" id="username_field" name="username_field">
  <input type="password" id="password_field" name="password_field">
  <input type="submit" id="submit_button" name="submit_button">
</form>

<!-- Change password form with username. -->
<form action="password_push_state2.html" id="chg_testform">
  <input type="text" id="chg_username_field" name="chg_not_username_field">
  <input type="password" id="chg_password_field" name="chg_password_field">
  <input type="password" id="chg_new_password_1" name="chg_new_password_1">
  <input type="password" id="chg_new_password_2" name="chg_new_password_2">
  <input type="submit" id="chg_submit_button" name="chg_submit_button">
</form>

<!-- Two forms with empty actions. The password manager should distinguish the 
login form with empty action from other forms. -->
<form action="" id="empty_action_login_form">
  <input type="text" id="ea_username_field" name="username_field">
  <input type="password" id="ea_password_field" name="password_field">
  <input type="submit" id="ea_submit_button" name="submit_button">
</form>

<form action="" id="empty_action_another_form">
  <input type="text" id="ea_username_field2" name="username_field">
  <input type="password" id="ea_password_field2" name="password_field">
  <input type="submit" id="ea_submit_button2" name="submit_button">
</form>

<!-- Forms for testing that origin/action parameters and references are ignored
in form comparison, i.e. we use canonical origins and actions.
Here we also test that if an action coincides with frame url, all form data
should be used to compare forms. -->
<form action="password_push_state.html?ref=2#b" id="params_action_login_form">
  <input type="text" id="pa_username_field" name="username_field">
  <input type="password" id="pa_password_field" name="password_field">
  <input type="submit" id="pa_submit_button" name="submit_button">
</form>

<form action="password_push_state.html?ref=1#a" id="params_action_another_form">
  <input type="text" id="pa_username_field2" name="username_field">
  <input type="password" id="pa_password_field2" name="password_field">
  <input type="submit" id="pa_submit_button2" name="submit_button">
</form>

</body>
</html>

<html>
